package com.jindy.module.returnapplyorder.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jindy.module.outboundorder.domain.OutboundOrder;
import com.jindy.module.outboundorder.domain.OutboundOrderMachine;
import com.jindy.module.returnapplyorder.dto.ReturnApplyDto;
import lombok.Data;
import com.jindy.common.annotation.Excel;
import com.jindy.common.core.domain.BaseEntity;

/**
 * 回库申请单对象 t_return_apply
 *
 * @author ruoyi
 * @date 2022-10-19
 */
@Data
public class ReturnApply extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    private Long id;

    /** 回货单编号 */
    @Excel(name = "回货单编号")
    private String returnApplyNo;

    /**
回货/退货类型 */
    @Excel(name = " 回货/退货类型")
    private String returnType;

    /** 发起人 */
    @Excel(name = "发起人")
    private Long sponsor;

    /** 发起人名称 */
    @Excel(name = "发起人名称")
    private String sponsorName;

    /** 客户 */
    @Excel(name = "客户")
    private Long customerId;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String customerName;

    /** 订单id */
    @Excel(name = "订单id")
    private Long orderId;

    /** 订单编号 */
    @Excel(name = "订单编号")
    private String orderNo;

    /** 装货地址省份 */
    @Excel(name = "装货地址省份")
    private String loadingAddressProvince;

    /** 装货地址市 */
    @Excel(name = "装货地址市")
    private String loadingAddressCity;

    /** 装货地址区 */
    @Excel(name = "装货地址区")
    private String loadingAddressArea;

    /** 装货地址详细信息 */
    @Excel(name = "装货地址详细信息")
    private String loadingAddress;

    /** 对接人名称 */
    @Excel(name = "对接人名称")
    private String contactName;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String contactTelephone;

    /** 装货日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "装货日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date loadingDate;

    /** 是否需要物流安排车辆 */
    @Excel(name = "是否需要物流安排车辆")
    private String whetherLogisticsRequired;

    /** 协同人 */
    @Excel(name = "协同人")
    private Long collaborator;

    /** 协同人名称 */
    @Excel(name = "协同人名称")
    private String collaboratorName;

    /** 日租金合计 */
    @Excel(name = "日租金合计")
    private BigDecimal totalDailyRent;

    /** 订单状态 */
    @Excel(name = "订单状态")
    private String orderStatus;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /**
     * 产品列表
     */
    private List<ReturnApplyProduct> productList;

    /**
     * 机器列表
     */
    private List<Map<String,Object>> machineList;


    /** 运输方式 */
    @Excel(name = "运输方式")
    private String shippingType;

    /** 司机姓名 */
    @Excel(name = "司机姓名")
    private String driverName;

    /** 司机联系方式 */
    @Excel(name = "司机联系方式")
    private String driverTel;

    /** 车辆信息 */
    @Excel(name = "车辆信息")
    private String vehicleInformation;
    /** 仓库id */
    @Excel(name = "仓库id")
    private Long warehouseId;

    /** 仓库名称 */
    @Excel(name = "仓库名称")
    private String warehouseName;


    /** 父级回库申请单id */
    private Long parentId;
    /**
     * 关联的子申请单
     */
    private List<ReturnApplyDto> childReturnApply;

    /**
     * 查看权限（用户id)
     */
    private Long userId;

    /**
     * 回库申请数量
     */
    private Long returnApplyQuantity;

    /** 物流费用 */
    @Excel(name = "物流费用")
    private BigDecimal logisticsExpenses;

    /** 物流费用填写状态（1已完全填写，2未完全填写） */
    private String expensesStatus;

    /** 项目名称 */
    private String projectName;

}
